System and method for matching customers with hair stylist based on holistic criteria

ABSTRACT

A computer-implemented method of matching a customer with a service provider, the method comprising: creating, by a computing device, a profile of a customer having a plurality of categorical values descriptive of or liked by the customer; creating, by the computing device, a profile of a service provider having a plurality of categorical values descriptive of or liked by the service provider; creating, by the computing device, a request by the customer to recommend a service provider, wherein the request includes one or more requested categorical and discrete values; and providing, by the computing device, ranked recommendations of service providers to the customer based on a comparison of the categorical values in the profiles of the customer and the service provider and the requested categorical and discrete values by the customer. A service provider can be a hair stylist.

In one embodiment, the recommendations are further based on determininglocation coordinates of the customer via a global positioning system ora manual location entry and calculating the distance to a hair stylistis within the requested discrete value of maximum distance to travel bythe customer.

In one embodiment, the categorical values in the profile of the customerare selected from one or more of the group consisting of sex, hairlength, favorite book genre, favorite music genre, favorite televisionseries, favorite sport participant, favorite discussion topic, firstfavorite brand, second favorite brand, third favorite brand, or acombination thereof.

In one embodiment, the customer has the option to not specify acategorical value.

In one embodiment, the categorical values of the customer are providedthrough a questionnaire, or are extracted from social media oruser-generated content by means of artificial intelligence, or imageanalysis, or analysis of hashtags found on social media, or acombination.

In one embodiment, the categorical values of the hair stylist areprovided through a questionnaire, or are extracted from social media oruser-generated content by means of artificial intelligence, or imageanalysis, or analysis of hashtags found on social media, or acombination.

In one embodiment, the categorical values of the hair stylist areextracted from image analysis of the hair stylist's salon page.

In one embodiment, the categorical values in the profile of the hairstylist are selected from one or more of the group consisting of sex ofcustomer, favorite book genre, favorite music genre, favorite televisionseries, favorite discussion topic, favorite sport participant, salonlocation, first hair styling skill, second hair styling skill, thirdhair styling skill, fourth hair styling skill, fifth hair styling skill,sixth hair styling skill, location type, first favorite brand, secondfavorite brand, third favorite brand, fourth favorite brand, fifthfavorite brand, sixth favorite brand, or a combination thereof.

In one embodiment, the hair stylist has the option to not specify acategorical value. In one embodiment, the requested categorical valuesare selected from hair styling services and customer location, and therequested discrete values are selected from maximum distance to travel,importance of hair styling skill of the hair stylist, importance ofcustomer profile, importance of customer favorite brands.

In one embodiment, the importance of the hair styling skill of the hairstylist, importance of customer profile, and importance of customerfavorite brands are selected from values of low, medium, and high.

In one embodiment, the computer-implemented method further comprisesproviding feedback by a customer ranking the hair styling skills of thehair stylist to the requested hair styling service and ranking one ormore of the categorical values in the profile of the hair stylist.

In one embodiment, the recommendations are given as a percentrepresenting a closeness of a match of the customer profile with thehair stylist profile and a match of the requested categorical anddiscrete values to the hair stylist profile.

In one embodiment, a computing device, comprising at least a memory andprocessor, is configured to: create a profile of a customer having aplurality of categorical values descriptive of or liked by the customer;create a profile of a service provider having a plurality of categoricalvalues descriptive of or liked by the service provider; create a requestby the customer to recommend a service provider, wherein the requestincludes one or more requested categorical and discrete values; andprovide ranked recommendations of service providers to the customerbased on a comparison of the categorical values in the profiles of thecustomer and the service provider and the requested categorical anddiscrete values by the customer.

In one embodiment, the service provider is a hair stylist. In oneembodiment, the computing device is further configured to create a salonpage having a plurality of discrete values and categorical valuesdescriptive of a salon of the hair stylist.

In one embodiment, the recommendations are further based on determininglocation coordinates of the customer via a global positioning system ora manual location entry and calculating the distance to a hair stylistis within the requested discrete value of maximum distance to travel bythe customer.

In one embodiment, the categorical values in the profile of the customerare selected from one or more of the group consisting of sex, hairlength, favorite book genre, favorite music genre, favorite televisionseries, favorite sport participant, favorite discussion topic, firstfavorite brand, second favorite brand, third favorite brand, or acombination thereof.

In one embodiment, the customer has the option to not specify acategorical value.

In one embodiment, the categorical values of the customer are providedthrough a questionnaire, or are extracted from social media oruser-generated content by means of artificial intelligence, or imageanalysis, or analysis of hashtags found on social media, or acombination.

In one embodiment, the categorical values of the hair stylist areprovided through a questionnaire, or are extracted from social media oruser-generated content by means of artificial intelligence, or imageanalysis, or analysis of hashtags found on social media, or acombination.

In one embodiment, the categorical values of the hair stylist areextracted from image analysis of the hair stylist's salon page.

In one embodiment, the categorical values in the profile of the hairstylist are selected from one or more of the group consisting of sex ofcustomer, favorite book genre, favorite music genre, favorite televisionseries, favorite discussion topic, favorite sport participant, salonlocation, first hair styling skill, second hair styling skill, thirdhair styling skill, fourth hair styling skill, fifth hair styling skill,sixth hair styling skill, location type, first favorite brand, secondfavorite brand, third favorite brand, fourth favorite brand, fifthfavorite brand, sixth favorite brand, or a combination thereof.

In one embodiment, wherein the hair stylist has the option to notspecify a categorical value.

In one embodiment, the requested categorical values are selected fromhair styling services and customer location, and the requested discretevalues are selected from maximum distance to travel, importance of hairstyling skill of the hair stylist, importance of customer profile,importance of customer favorite brands.

In one embodiment, the importance of the hair styling skill of the hairstylist, importance of customer profile, and importance of customerfavorite brands are selected from values of low, medium, and high.

In one embodiment, the computing device is further configured to providefeedback by a customer ranking the hair styling skills of the hairstylist to the requested hair styling service and ranking one or more ofthe categorical values in the profile of the hair stylist.

In one embodiment, the recommendations are given as a percentrepresenting a closeness of a match of the customer profile with thehair stylist profile and a match of the requested categorical anddiscrete values to the hair stylist profile.

In one embodiment, a system comprises: a profile building engineincluding computational circuitry configured to: create a profile of acustomer having a plurality of categorical values descriptive of orliked by the customer and to create a profile of a service providerhaving a plurality of categorical values descriptive of or liked by theservice provider; a request building engine including computationalcircuitry configured to: create a request by the customer to recommend aservice provider, wherein the request includes one or more requestedcategorical and discrete values; and a matching engine includingcomputational circuitry configured to: provide ranked recommendations ofservice providers to the customer based on a comparison of thecategorical values in the profiles of the customer and the serviceprovider and the requested categorical and discrete values by thecustomer.

In one embodiment, the service provider is a hair stylist.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features ofthe claimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter.

DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of thisinvention will become more readily appreciated as the same become betterunderstood by reference to the following detailed description, whentaken in conjunction with the accompanying drawings, wherein:

FIG. 1 is a schematic diagram that illustrates an embodiment of a systemfor generating and providing hair stylist recommendations to a customeraccording to the present disclosure;

FIG. 2 is a block diagram that illustrates an embodiment of a terminalor mobile computing device according to the present disclosure;

FIG. 3 is a block diagram that illustrates an embodiment of a servercomputing device according to the present disclosure;

FIG. 4 is a flowchart that illustrates an embodiment of a method ofgenerating and providing hair stylist recommendations to a customeraccording to the present disclosure;

FIG. 5A is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 5B is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 5C is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 6 is a block diagram that illustrates one embodiment of a graphicaluser interface (GUI) of a mobile device for performing an action of themethod of FIG. 4;

FIG. 7A is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 7B is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 7C is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 7D is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 7E is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 7F is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 7G is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 7H is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 8 is a block diagram that illustrates one embodiment of a graphicaluser interface (GUI) of a mobile device for performing an action of themethod of FIG. 4;

FIG. 9 is a block diagram that illustrates one embodiment of a graphicaluser interface (GUI) of a mobile device for performing an action of themethod of FIG. 4;

FIG. 10 is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 11A is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 11B is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 11C is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4;

FIG. 12 is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4; and

FIG. 13 is a block diagram that illustrates one embodiment of agraphical user interface (GUI) of a mobile device for performing anaction of the method of FIG. 4.

DETAILED DESCRIPTION

The selection of any service provider, for example a hair stylist, caninvolve searching online for reviews, or selection of a service providercan also involve talking with friends and relatives to getrecommendations. U.S. Pat. No. 8,566,327B2 describes a method formatching user profiles based on preferences indicated by users. Findinga hair styling salon according to user preferences is described in thewebsite:https://www.treatwell.fr/salons/soin-chignon-et-coiffure/offre-type-local/dans-paris-france.Websites are also available to make reservations, such as the website:https://www.leciseau.fr. Many websites and apps already exist but focusonly on pricing aspects or on market segmentation to provide traffic tospecific service providers. They play on special offers, discount pricesor even on special cooptation for more luxury positioned brands.Customer loyalty and value aren't taken into consideration in the stateof the art offers. The selection method using these resources, at best,gives no assurances that the chosen service provider (e.g., hairstylist) will be compatible with a customer, not only in terms ofmeeting a customer's expectation for providing high quality services,but, also that the personality of a service provider is compatible witha customer's, as customers can spend many hours in the presence of aservice provider. Therefore, it becomes important that the customer canrelax and enjoy the experience.

Accordingly, there is a need for selecting a service provider, such as ahair stylist or any other hair care professional for an individualhaving distinct preferences. Although the description and figures makereference to a hair stylist, this is done to merely illustrate onrepresentative embodiment. This disclosure is not limited to hairstylists, and the methods disclosed herein may be used for recommendingany service provider to a customer.

As a consequence of the methods for matching a customer with a serviceprovider in accordance with this disclosure, the service provider savestime, finds his customers more easily and uses his skills better. Thecustomer also saves time finding a qualified and compatible serviceprovider. The customer is more confident because he will find a serviceprovider with a desired expertise, and has less stress when he goes tothe service provider because he can be sure he has found the expert onhis problem.

In accordance with this disclosure, a service provider is recommendedhaving the right expertise. There is trust on the part of the consumerhaving found the right service provider for the right problem. On theother side, the service provider is also more confident because he issure he will use his own and specific skills. He won't be asked by thecustomer to use skills he doesn't master. For example, some hairstylists are good at coloration but might have poor abilities forcutting hair. Consequently, the hair stylist will be also moreconfident. Thus, the match is a win-win relation between the hairstylist and the customer.

FIG. 1 is a schematic diagram that illustrates a non-limiting exampleembodiment of a system 100 for generating and providing recommendationsfor a service provider, such as hair stylist, to a user-customeraccording to various aspects of the present disclosure. In the system100, each of a plurality of users 102, 104, and 106 with a respectivecomputing device 108, 110, and 112 can use the system 100. A computingdevice 108, 110, 112 can include terminals and mobile devices.

In this disclosure, a “user” can be a user-hair stylist oruser-customer. The user-customer can be a prospective customer in thesense that the user-customer is searching for a hair stylist. Hairstylist is a broad term encompassing any service provider of hair careservices, such as, cutting hair, styling hair, coloring hair, bleachinghair, hair extensions, and the like.

As shown, the terminals or mobile computing devices 108, 110, and 112and the matching server 116 may communicate via a network 114. Thenetwork 114 may include any suitable networking technology, includingbut not limited to a wireless communication technology (including butnot limited to Wi-Fi, WiMAX, Bluetooth, 2G, 3G, 4G, 5G, and LTE), awired communication technology (including but not limited to Ethernet,USB, and FireWire), or combinations thereof.

FIG. 2 is a block diagram that illustrates a non-limiting exampleembodiment of a terminal or mobile computing device, such as 108, foruse by a user-customer or a user-hair stylist.

In some embodiments, the mobile computing device 108 may be asmartphone. In some embodiments, the mobile computing device 108 may beany other type of computing device having the illustrated components,including but not limited to a tablet computing device or a laptopcomputing device. In some embodiments, the mobile computing device 108may not be mobile, but may instead by a stationary computing device suchas a desktop computing device. In some embodiments, the illustratedcomponents of the mobile computing device 108 may be within a singlehousing. In some embodiments, the illustrated components of the mobilecomputing device 108 may be in separate housings that arecommunicatively coupled through wired or wireless connections (such as alaptop computing device with an external global positioning systemreceiver). The mobile computing device 108 also includes othercomponents that are not illustrated, including but not limited to one ormore processors, a non-transitory computer-readable medium, a powersource, and one or more communication interfaces.

As shown, the mobile computing device 108 includes a display 118, aglobal positioning system receiver 120, network access 122, userinterface 124 (touchscreen, keys, etc.), system memory 126, a microphone144, a camera 142, and a central processing unit (CPU) 128.

In some embodiments, the display 118 is an LED display, an OLED display,or another type of display for presenting a user interface. In someembodiments, the display 118 may be combined with or include atouch-sensitive layer, such that a user 102, 104, and 106 may interactwith a user interface presented on the display 118 by touching thedisplay. In some embodiments, a separate user interface device,including but not limited to a mouse, a keyboard, or a stylus, may beused to interact with a user interface presented on the display 118.

In some embodiments, the microphone 144 allows a user to use voicecontrols for interfacing with the computing device 108. In someembodiments, the computing device 108 is configured for control throughgestures, such as swiping. In some embodiments, the microphone 144 andcamera 142 provide the ability for sound recording and photo/videoacquisition.

Referring to FIG. 3, a matching server 116 in accordance with oneembodiment of this disclosure is illustrated. In some embodiments, thematching server includes a profile build engine 132, a request buildengine 134, a matching engine 136, a feedback engine 140, data store130, and network access 138. Further, the matching server 116 includesone or more computing devices that each include one or more processors,non-transitory computer-readable media, and network communicationinterfaces that are collectively configured to provide the illustratedcomponents. In some embodiments, the one or more computing devices thatmake up the matching server 116 may be rack-mount computing devices,desktop computing devices, or computing devices of a cloud computingservice.

In some embodiments, the profile build engine 132 can be transmitted tothe mobile device 108, free or for a nominal user fee, and then theprofile build engine is stored in the system memory 126 of the mobiledevice 108. The profile build engine can be an “App” that is launched bya user clicking an icon on the display 118 of the mobile device 108. Inanother embodiment, the profile build engine 132 is launched in themobile device 108 through communication over the network 114, such as bygoing to a link on web site. The profile build engine 132 can presentthe user with webpages on the mobile device 108.

In some embodiments, a user-customer profile built by the profile buildengine 132 includes image analysis, for example, analysis of auser-customer pictures or analysis of a user-customer's social mediaaccounts, including analysis of “hashtags” in the social media accountsas a source of personality traits. The image and text analysis can beperformed by respective image and text processors operating artificialintelligence (AI) routines to extract personality data from existinguser-generated information instead of using a questionnaire.

In some embodiments, the data store 130 is configured to store profilesfor each user 102, 104, and 106. The profiles include categorical valuesand discrete values for each one of the users 102, 104, and 106.

In some embodiment, the profile build engine 132 is configured to obtaincertain categorical and discrete values from each user 102, 104, and 106depending on whether the user is a user-customer or user-hair stylist.The categorical and discrete values are descriptive of the user orthings the user likes or that can describe the user's personality, forexample, a profile for a user-customer may include the categoricalvalues of: name, gender, address, favorite book genre, favorite musicgenre, favorite TV series, favorite discussion subject, favorite sportparticipant, favorite brands, and hair length, for example to describethe user-customer and something about their personalities. A hairstylist profile may include the categorical values of: name, genderserviced, hair styling skills, favorite book genre, favorite musicgenre, favorite TV series, favorite discussion subject, favorite sportparticipant, favorite brands used, and work location, for example, todescribe the user-hair stylist and something about their personalitiesor hair styling qualifications. The values for all of these categoriesmay be entered by the user-customer and user-hair stylist through thedisplay 118 on the mobile device 108.

In some embodiments, a hair stylist profile built by the profile buildengine 132 includes image analysis, for example, analysis of a hairstylist's salon pictures or analysis of a hair stylist's social mediaaccounts, including analysis of “hashtags” in the social media accountsas a source of personality traits. The image and text analysis can beperformed by respective image and text processors operating artificialintelligence (AI) routines to extract personality data from existinguser-generated information instead of using a questionnaire.

In some embodiments, the request build engine 134 is configured toreceive certain categorical values and discrete values from theuser-customer. The request values are used in combination with theprofiles to recommend a user-hair stylist to the user-customer. Forexample, a request build engine 134 can obtain user-customer categoricalvalues of: present location, maximum distance willing to travel, hairstyling service needed, preferred salon ambiance, the subjectiveimportance to the user-customer of certain of the hair stylist'scriteria, such as the hair stylist's hair styling skills, the hairstylist's personality, and the hair stylist's favorite brands. Thevalues for all of these categories may be entered by the user-customerthrough the display 118 on the mobile device 108 to fill out the requestor through analysis of the user-generated content, such as from socialmedia. The values in the request filled out by the user-customer orthrough analysis of the social media accounts, along with theuser-customer's profile is compared to user-hair stylists' profilesstored in the system 100 to provide ranked recommendations of user-hairstylists. In some embodiments, a user-customer profile built by theprofile build engine 132 includes image analysis, for example, analysisof a user-customer's pictures in social media accounts and/or analysisof a user-customer's social media accounts, including analysis of“hashtags” in the social media accounts as a source of personalitytraits. The image and text analysis can be performed by respective imageand text processors operating artificial intelligence (AI) routines toextract personality data from existing user-generated informationinstead of using a questionnaire.

In some embodiments, the matching engine 136 is configured to comparethe requested categorical and discrete values to the profiles of theuser-hair stylists in the system 100. As described above, thecategorical values and discrete values can be input directly by a userthrough a questionnaire and/or indirectly through AI image and textprocessors analyzing user-generated content on the user's social media.In some embodiments, the matching engine 136 can use the presentlocation, as determined by a global positioning system receiver, of theuser-customer to narrow the list of possible recommendations of hairstylists within the requested geographical area. Thus, a user-customerwill be able to find a hair stylist even when traveling abroad.

In some embodiments, the request build engine 134 is configured toreceive certain categorical values and discrete values when theuser-hair stylist has selected the job searching feature. A feature foruser-hairstylist profiles and salon pages is the ability to indicatewhether there is employment available, in which case, the employeruser-hair stylist or salon and input job description and qualifications.The request values input by a job searching user-hair stylist and theirprofiles are matched with the job description and job qualificationsprovided by employer user-hair stylists and salons, so that the matchingengine 136 will recommend employer user-hair stylists and salons toanother user-hair stylist searching for a job. For example, the requestbuild engine 134 can obtain user-hair stylist categorical and discretevalues relevant for matching job searchers with employers. For example,a job search request discrete value may include a maximum distance thejob searching user-hair stylist is willing to travel. Job search requestcategorical values may include, for example, the hair styling skills inwhich the job searching user-hair stylist is proficient, the preferredsalon ambiance, favorite product brands, and the values relevant topersonality. The job searching user-hair stylist may also assign thesubjective importance of matching one categorical value more thananother. For example, a job searching user hair stylist may assignhigher importance to matching personality rather than skill, salonambiance, or favorite product brands. The values for all of thesediscrete and categorical values may be entered by the job searchinguser-hair stylist through a series of GUI screens on the display 118 orthrough AI machine learning analysis of the user-generated content, suchas from social media. The values in the request filled out by the jobsearching user-hair stylist or through analysis of the social mediaaccounts, along with the job searching user-hair stylist's profile iscompared to employer user-hair stylists' profiles and salon pages storedin the system 100 to provide ranked recommendations of employeruser-hair stylists and salons.

In some embodiments, the matching engine 136 is configured to comparethe requested categorical and discrete values to the profiles of theemployer user-hair stylists in the system 100. As described above, thecategorical values and discrete values can be input directly by a userthrough a questionnaire and/or indirectly through AI image and textprocessors analyzing user-generated content on the user's social media.In some embodiments, the matching engine 136 can use the presentlocation, as determined by a global positioning system receiver, of theuser-customer to narrow the list of possible recommendations of employerhair stylists within the requested geographical area.

Further, in comparing the requested hair styling service needed by theuser-customer, personality, and favorite brand and possibly preferencesderived from AI-based personality matching of the user-customer profileto the user-hair stylist profile, the matching engine 136 applies theweighted subjective importance to the user-customer of the hairstylist's hair styling skills, the hair stylist's personality, and thehair stylist's favorite brands. The matching engine 136 then sends theranked recommendations to the user-customer, which the user-customer canthen click on to find out more about the hair stylist, call, or emailfurther questions, or ask to make an appointment, etc. In addition, theuser-customer can also view results of feedback provided by otheruser-customers. Once the user-customer has used the services of auser-hair stylist, the user-customer may also provide feedback.

In some embodiments, the feedback engine 140 is configured to receiveinput from a user-customer regarding whether the categorical valuesrelating to hair stylist's skills in the profile of a hair stylist areaccurate. For example, if a hair stylist's profile indicates that thehair stylist is skilled at cutting, then, a user-customer who received ahair cut from the hair stylist can provide feedback by either agreeingor not agreeing that the hair stylist was proficient in the hair cuttingskill. Further, the feedback engine 140 can be configured to receiveinput whether the categorical values in the profile of a hair stylistrelating to hair stylist's personality are accurate. For example, if thehair stylist's profile indicates that the hair stylist's favorite musicgenre is rock n roll, but, the hair stylist only talked about jazz andblues music, then, the user-customer can disagree that the user-hairstylist's favorite music genre is rock n roll.

In this disclosure, “engine” of components 132, 134, 136, and 140 refersto logic embodied in hardware or software instructions, which can bewritten in a programming language, such as C, C++, COBOL, JAVA™, PHP,Perl, HTML, CSS, JavaScript, VBScript, ASPX, Microsoft .NET™, Go, and/orthe like. Examples of AI machine learning routines include, but are notlimited to, convolutional neural networks and image segmentation. Deeplearning programming languages include, for example, TENSORFLOW™,PYTORCH™, SONNET™, KERAS™, MXNet™, GLUON™, SWIFT™, CHAINER™, DL4J™, andONNX™. An engine may be compiled into executable programs or written ininterpreted programming languages. Software engines may be callable fromother engines or from themselves. Generally, the engines describedherein refer to logical modules that can be merged with other engines,or can be divided into sub-engines. The engines can be stored in anytype of computer-readable medium or computer storage device and bestored on and executed by one or more general purpose computers, thuscreating a special purpose computer configured to provide the engine orthe functionality thereof.

The “data store” 130 refers to any suitable device configured to storedata for access by a computing device. One example of a data store 130is a highly reliable, high-speed relational database management system(DBMS) executing on one or more computing devices and accessible over ahigh-speed network. Another example of a data store 130 is a key-valuestore. However, any other suitable storage technique and/or devicecapable of quickly and reliably providing the stored data in response toqueries may be used, and the computing device may be accessible locallyinstead of over a network, or may be provided as a cloud-based service.

A data store 130 may also include data stored in an organized manner ona computer-readable storage medium, such as a hard disk drive, a flashmemory, RAM, ROM, or any other type of computer-readable storage medium.One of ordinary skill in the art will recognize that separate datastores described herein may be combined into a single data store, and/ora single data store described herein may be separated into multiple datastores, without departing from the scope of the present disclosure.

The computing device 108, 110, and 112 is used to complete a uniqueprofile for each of the users 102, 104, and 106. The data in the profileis prompted by the profile build engine 132 by using a series ofgraphical user interfaces, for example. Additionally or alternatively,the user profile is also built by AI routines that analyzeuser-generated content, such as found in social media including, forexample, images, text, and hashtags. The profile contains categoricalvalues and discrete values that describe certain preferences, likes, andattributes unique to the individual user 102, 104, and 106. Categoricalvalues have ranges defining members of the category. Members of afavorite music genre and favorite book genre would be categoricalvalues. Some categorical values are ordinal, meaning that values in thecategory have a natural order, such as small, medium, large, forexample. Discrete values can usually be counted, are integers or realnumbers. A collection of categorical and discrete values can be used todescribe the personality of a user, their location, skill, preferences,likes, dislikes, etc.

The computing device 108, 110, 112, includes the profile build enginethat presents a series of graphical user interfaces that allow the userto specify, or optionally not specify, the categorical and discretevalues of his/her profile, or use AI routines that link to social mediato extract the features to use in the profile. Some categorical anddiscrete values will be different depending on whether the user 102,104, and 106 is a user-hair stylist or user-customer.

Once completed, the profiles are transmitted to the matching server 116,where they are stored in the data store 130. Once in the system 100,user-customers and user-hair stylists can use the system 100. Thematching server 116 waits for a request from a user-customer oruser-hair stylist to act upon the request to provide rankedrecommendations of a user-hair stylist to the user-customer or provideranked recommendations of an employer user-hair stylists to jobsearching user-hair stylists. In one embodiment, only user-hair styliststhat are in the system 100 are recommended to the user-customer or jobsearching user-hair stylists. A real-time request from a user-customeror user-hair stylist may further contain additional categorical anddiscrete values that are not already in the user-customer profile, andmay be unique to the present request of the user-customer and user-hairstylists.

When a request from a user-customer or job searching user-hair stylistis received at the matching server 116, the matching server 116 mayexecute a matching engine that compares the profile of the user-customeror job searching user-hair stylist who sent the request along with theadditional requested categorical and discrete values to the profiles ofthe user-hair stylists. The comparison by the matching server 116 yieldsa ranked recommendation for user-hair stylists that most closely matchwith the profile of the user-customer and the values specified in therequest, or in the case of job searching user-hair stylists, thematching server 116 yields a ranked recommendation for employeruser-hair stylists. In one embodiment, the request may include thelocation and maximum distance willing to travel by the user-customer.The present location may be gathered by the computing device 108, 110,and 112, with a global positioning system receiver in the computingdevice 108, 110, and 112. Alternatively, if the use-customer istraveling, the user-customer may provide the current, but not home,location.

The matching server 116 may then make the first match of user-hairstylists by selecting only those within the geographical area specifiedin the request. The ranking according to location first can saveprocessing time and resource, since many user-hair stylists can beeliminated based on not matching the geolocation request. The ranking ofuser-hair stylists, as well as other information, may be provided to theuser-customer via a display on the computing device 108, 110, and 112.

FIG. 4 is a flowchart that illustrates a non-limiting example embodimentof a method 400 of completing user profiles and providingrecommendations to a user-customer looking for a hair stylist based onmatching a user-customer's categorical and discrete values reflective ofthe customer's likes, personality, locations, and services needed. Themethod 400 can be implemented in computer hardware or software on thecomputing device 108 as an application (or App) and in the matchingserver 116. In addition, FIG. 4 also includes a method for recommendingan employer user-hair stylist to a job searching user-hair stylist.

In block 402, the method requests the user to log in if the user alreadyhas an account, or alternatively, if the user does not have an account,the user can register to set up an account.

FIG. 5A is one illustrative example of a GUI screen of a mobile device108 that can be used to log in or register for first-time users. Mobiledevice 108 is merely to illustrate aspects of the disclosure. In FIG.5A, the user can select the button 502 if the user is a user-customer,or the user can select the button 504 if the user is s user-hairstylist. Depending on button 502 and 504 selected, the method 400 willbring up a different screen for the user-customer and the user-hairstylist. For example, if a user selects button 504 for a user-hairstylist, then a screen as illustrated in FIG. 5B can be presented to theuser-hair stylist. FIG. 5B is the home screen for a user-hair stylistand shows buttons for selecting from building/editing profile 508,viewing the hair-stylist's profile edited for public viewing 510,reviewing user-customer feedback 512, and searching for a job 514. Ifthe user is a user-customer and selects button 502 from FIG. 5A, then ascreen as illustrated in FIG. 5C can be presented to the user-customer.FIG. 5C is the home screen for a user-customer and shows buttons forselecting from building/editing profile 518, making a request 520, orselecting to view the public profiles of user-hairstylists from a fieldthat displays previous matches 522. Field 522 may include a picture ofthe hair stylist and a link to the hair stylist's profile edited forpublic viewing. From block 402, the method enters block 404

In block 404, a first-time user will build a profile, or if the user isnot a first-time user, the user can edit the profile. The method canrecognize whether the user has a profile or not, and display theappropriate screen. The profile build engine 132 (FIG. 3) can generatethe screens for inputting the categorical and discrete values forbuilding and displaying the user profiles of both the user-hair stylistand the user-customer.

FIG. 6 is one illustrative example of a GUI screen of a mobile device108 for creating a user-hair stylist profile. Input text block 610allows the entry of alphanumeric characters to designate a user name foridentification purposes. Input field 612 includes three buttons thatallows the user-hair stylist to identify the categorical value of thegender of clients serviced by the hair stylist. Input field 614 cancontain any number, six, for example, of drop-down menus for identifyingthe categorical values of the hair stylist's hair styling skills. Theskills can be ranked or non-ranked. Skills can include, but are notlimited to, hair cutting, dyeing, permanent, extensions, shampooing, andthe like. Input field 616 is a drop down menu for selecting thecategorical value of book genres from which the hair stylist can selecta favorite or not specify a favorite. Input field 616 is a descriptorfor personality. Input field 618 is a drop down menu for selecting thecategorical value of music genres from which the hair stylist can selecta favorite or not specify a favorite. Input field 618 is a descriptorfor personality. Input field 620 is a drop down menu for selecting thecategorical value of TV series genres from which the hair stylist canselect a favorite or not specify a favorite. Input field 620 is adescriptor for personality. Input field 622 is a drop down menu forselecting the categorical value of conversation topics from which thehair stylist can select a favorite or not specify a favorite. Inputfield 622 is a descriptor for personality. Input field 624 is a dropdown menu for selecting the categorical value of sport participationfrom which the hair stylist can select a favorite or not specify afavorite. Input field 624 is a descriptor for personality.

Social media buttons 626 can be used to link to the user-hair stylist'ssocial media accounts. When selected, the one or more of the socialmedia accounts are analyzed for user-generated content to automaticallycapture personality traits using AI routines that perform text and/orimage analysis.

FIG. 7A is one illustrative example of a GUI screen of a mobile device108 for creating a user-hair stylist profile. Input field 702 includesthree buttons that allows the user-hair stylist to identify thecategorical value of the location type. Further screens may prompt theuser-hair stylist to enter additional categorical values depending onthe location type. For a physical salon location, further screens mayrequire input of categorical values for the address, the number of totalseatings in the salon, the salon ambiance from a drop down menu. For amobile location, screens may require a discrete value for a maximumdistance willing to travel to a customer. For both location types, inputmay be required of categorical values for contact information, such asphone, email, website, social medium accounts, an appointment calendarshowing open times, prices for each hair styling skill, or combinations.Next, input field 704 can contain any number, six, for example, ofdrop-down menus for identifying the categorical values of the hairstylist's favorite product brands.

FIG. 7B is one illustrative example of a GUI screen of a mobile device108 for creating a salon page. FIG. 7B would appear if the user-hairstylist specifies a salon location in field 702 of FIG. 7A. Field 708includes text fields for including a physical address for a salon. Afterentering the physical address of the salon in field 708, and thenclicking on the “CHECK MY SALON” button 722, the system will check ifthis address already exist in the salon database. In other words, thesalon physical address works as a unique identifier. If the salonalready exists in the database, it means that the salon page alreadyexists, and the user-hair stylist does not need to create a new salonpage.

If on the contrary, the physical address does not match with any salonalready stored in the salon database, the user-hair stylist may bepresented with a GUI screen on the mobile device 108 as illustrated inFIG. 7C. In FIG. 7C, an error message 726 warns the user-hair stylistthat the salon does not exist in the database. Because the physicaladdress is new to the salon database, the system can propose to createthe salon page by displaying a “CREATE” button 724. Then, the user-hairstylist can click the CREATE button 724 to create the salon page in thesalon database.

FIG. 7D is one illustrative example of a GUI screen of a mobile device108 for creating a salon page of the salon database. Field 708 is fordisplaying the salon location from the previous screen. Field 710includes one or more modes of contact, including, for example, phone,website, and social media accounts. Field 712 is for selecting adiscrete value of the number of seatings available at the salon. Field714 is for selecting the categorical value of the ambiance of the salonfrom a drop-down menu, for example.

When all the fields on the screen of FIG. 7D are completed, a new screenas shown in FIG. 7E may appear to complete the salon page. Field 716 canbe used to provide the discrete values of prices for each services orfor combination of services, which may be discounted if services arebundled into packages. Field 718 is for selecting the categorical valueof product brands used in the salon. When the user-hair stylist issatisfied with the selections, the user-hair stylist selects the“CREATE” button 720 to create the salon page. If there are errors ormissing data, a screen can appear specifying the errors.

When the salon page is created, the user-hair stylist is moved back tohis profile edition screen as illustrated in FIG. 7F.

The last step of the user-hair stylist profile creation is to list thebrands he/she likes the most as a hair-stylist from a GUI screen asillustrated in FIG. 7G, where the favorite product brands can beselected from drop down menus in field 704.

The other possibility if the user-hair stylist works as a mobilehairdresser is to indicate the maximum travelling distance in a screenas illustrated in FIG. 7H. In the GUI screen of FIG. 7H, the field 728allows the mobile user-hair stylist to enter the maximum travelingdistance. The user-hair stylist may also enter contact information infield 730. In one embodiment, the user profile can be created by linksto the existing user generated content to avoid a copy/paste of alreadyexisting information. To do so, the user hair stylist can indicate infield 710 the url addresses of their existing social media and websites.

FIGS. 6, 7A, 7B, 7C, 7D, 7E, 7F, 7G, and 7H are merely illustrative GUIscreens for creating a profile, other categorical or discrete values canbe added or deleted from the profile. Furthermore, payment systems canbe set up by the user-hair stylist for online payment.

Referring back to FIG. 7A, when the user-hair stylist has finishedbuilding the profile, the user-hair stylist can review the selections,and the user-hair stylist can click on the “GO” button 706 to create theprofile.

The selections for a user-customer by selecting button 502 in FIG. 5 caninclude building/editing profile, making a request, and displayingprevious matches. However, if the user-customer selects requesting ahair stylist, and if the user-customer has not previously built aprofile, an error screen can be displayed. The user-customer is thenprompted to build a user-customer profile.

FIG. 8 is one illustrative example of a GUI screen of a mobile device108 for creating a user-customer profile. Input text block 802 allowsthe entry of alphanumeric characters to designate a user name foridentification purposes. Input field 804 includes three buttons thatallows the user-customer to identify the categorical value of theuser-customer gender. Input field 806 includes three buttons that allowsthe user-customer to identify the categorical ordinal value of hairlength from short, medium, or long. Alternatively, a slider button canbe used to indicate the length of hair. Input field 812 is a drop downmenu for selecting the categorical value of book genres from which thecustomer can select a favorite or not specify a favorite. Input field812 is a descriptor for personality. Input field 814 is a drop down menufor selecting the categorical value of music genres from which thecustomer can select a favorite or not specify a favorite. Input field814 is a descriptor for personality. Input field 816 is a drop down menufor selecting the categorical value of TV series genres from which thecustomer can select a favorite or not specify a favorite. Input field816 is a descriptor for personality. Input field 818 is a drop down menufor selecting the categorical value of conversation topics from whichthe customer can select a favorite or not specify a favorite. Inputfield 818 is a descriptor for personality. Input field 820 is a dropdown menu for selecting the categorical value of sport participationfrom which the customer can select a favorite or not specify a favorite.Input field 820 is a descriptor for personality.

Social media buttons 822 can be used to link to the user-customer'ssocial media accounts. When selected, the one or more of the socialmedia accounts are analyzed for user-generated content, such as imagesand text, for example, to automatically capture discrete and categoricalvalues, such as personality traits, through AI machine learning routinesor through image analysis or both.

FIG. 9 is one illustrative example of a GUI screen of a mobile device108 for creating a user-customer profile. Input field 902 can containany number, three, for example, of drop-down menus for identifying thecategorical values of the user-customer's favorite product brands.

FIGS. 8 and 9 are merely illustrative, other categorical or discretevalues can be added or deleted from the profile. Furthermore, paymentsystems, including bank or credit card transfers can be set up by theuser-customer.

When the user-customer has finished building the profile, theuser-customer can review the profile, and the user-customer can click onthe “GO” button 904 to create the user-customer profile.

Referring to FIG. 4, after completion of profile building byuser-customers and user-hair stylists in block 404, the method 400enters block 406 from block 404. In block 406, the method 400 saves theprofiles in the data store 130 of the matching server 116 (FIG. 3). Fromblock 406, the method 400 enters block 408 or block 409. The decisionwhether to enter block 408 or 409 depends on whether the user hasregistered as a user-customer (button 502, FIG. 5A) who wants to requesta user-hair stylist recommendation (button 520, FIG. 5C), or whether theuser has identified himself as a user-hair stylist (button 504, FIG. 5A)who wants to request a job search (button 514, FIG. 5B) from otheruser-hair stylists.

In block 408, the user-customer can now make a request to find a hairstylist by inputting categorical and discrete values. The request ismade by clicking the button 520 (FIG. 5C).

FIG. 10 is one illustrative example of a GUI screen of a mobile device108 for creating a request to find a hair stylist. The request buildengine 134 (FIG. 3) can generate the screens for inputting thecategorical and discrete values for making a request to find a hairstylist. Input text block 1002 allows the entry of alphanumericcharacters to designate a user-customer location. Alternatively, theuser-customer location can be determined by the global positioningsystem 120 of the mobile device 108. Some locations may be saved, suchas “home” or “work” to avoid typing the location every time. If theuser-customer does not wish to specify a location, for privacy reasons,the user-customer may specify street intersections, neighborhoods,landmarks, and the like. Input field 1004 is for inputting the discretevalue of maximum distance the user-customer is willing to travel to ahair stylist salon. If the user-customer selects zero distance, this mayexclude salons and only mobile hair stylists are considered formatching. Input field 1006 can contain any number, three, for example,of drop-down menus for identifying the categorical values of theuser-customer's hair styling service needed. Input field 1008 is forinputting the categorical ordinal value of the subjective importance tothe user-customer of matching the user-customer's hair styling servicesneeded to the hair stylist's hair styling skills. Input field 1008 caninclude any number, three, for example, of buttons to select a value oflow, medium, or high importance. Alternatively, a slider button can beused to indicate the importance. Input field 1010 is for inputting thecategorical ordinal value of the subjective importance to theuser-customer of matching the user-customer's personality categoricalvalues to the hair stylist's personality categorical values. Input field1010 can include any number, three, for example, of buttons to select avalue of low, medium, or high importance. Alternatively, a slider buttoncan be used to indicate the importance. Input field 1012 is forinputting the categorical ordinal value of the subjective importance tothe user-customer of matching the user-customer's favorite productbrands to the hair stylist's favorite product brands. Input field 1012can include any number, three, for example, buttons to select a value oflow, medium, or high importance. Alternatively, a slider button can beused to indicate the importance.

FIG. 10 is merely illustrative, other categorical or discrete values canbe added or deleted from the request. For example, the user-customer canspecify categorical values of salon ambiance or price ranges orrequiring a saloon to be on a metro (bus, subway, train) route, and alsoassign an ordinal value from low, medium or high importance.

After the user-customer has completed the request on the mobile device108, the user-customer can click on a “GO” button 1014. Referring toFIG. 4, after completion of the request in block 408, and selecting the“GO” button 1014, the method 400 enters block 410.

In block 410, the request is transmitted to the matching server 116,where the matching engine 136 will match the requested categorical anddiscrete values in the request and user-customer profile to thecategorical and discrete values from the profiles of the hair stylistsin the data store 130. From block 410, the method enters block 412.

In block 412, the matching engine 136 can first apply a location filterto match the geolocation of the user-customer to the user-hair stylist.This filter applies the location of the user-customer in the request andthe maximum distance willing to travel to the locations of salons withinthe radius of the maximum distance, or if the hair stylist is mobile,the matching engine 136 can also consider the maximum distance that thehair stylist is willing to travel. The matching engine 136 provides afiltered set of hair stylist meeting the geolocation request. From block412, the method 400 enters block 414.

In block 414, the method 400 applies weighting formulas on the filteredset of hair stylists resulting from block 412. For example, the matchingengine 136 will next select the categorical values rated highest inimportance by the user-customer. The matching engine can setcoefficients to apply a weighting algorithm to the categorical values asindicated in the request. A high importance, for example, can indicatethat 75% to 100% of the hair stylist categorical values are included inthe categorical values requested by the user-customer. However, not allcategorical values can be weighted the same when they are designated atthe same importance level. For example, high importance for matching thehair stylists whose hair styling skills include each of the hair stylingservices from input field 1006 requested by the user-customer can mean a100% match. High importance for matching personality categorical valuesto hair stylists' personality categorical values can mean a 50% to 75%match. The matching engine subsequently applies weighting formulas tothe medium importance categorical values, and last, the low importancecategorical values. After each requested categorical value, the matchingengine can filter out the user-hair stylists that do not meet theweighting criteria for importance. The matching engine 136 tabulates thefinal matches for hair stylists as percentages. From block 414, themethod 400 enters block 416.

In block 416, any number, for example, three hair stylists having thehighest matching percentages are presented to the user-customer.Additionally, the matching hair stylists results can be saved in block426 in the data store 130 of the matching server 116 for display to theuser-customer at the next time that the user-customer opens theapplication.

FIG. 11A is one illustrative example of a GUI screen of a mobile device108 for displaying the highest ranked hair stylists to a user-customer.Display field 1102 can identify the user-customer, such as by a pictureor name. Display field 1104 can identify any number, three, for example,of the highest ranked hair stylists matching the request of theuser-customer. Identification can be by picture or name or both. In oneembodiment, clicking on the hair stylist's picture brings up a new GUIscreen as shown in FIG. 11B. A result display field 1106 below the hairstylist identification field shows pictograms of the location type andthe matching percent. In one embodiment, clicking on the salon pictogrambrings up a new GUI screen as shown in FIG. 11C. A second resultsdisplay field 1108 can show the matching percent of a second locationtype. Field 1120 is a button to select if the user-customer wishes toprovide feedback on a hair stylist.

Referring to FIG. 4, from block 416, the method enters block 418. Inblock 418, the user-customer can consult any of the displayed highestranked hair stylists to obtain their information. For example, byselecting one of the displayed hair stylists, one or more screens canappear on the mobile device 108 showing the profile of the hair stylist,including the type of location and address, distance, contactinformation and website, the hair stylist's hair styling skills, thepersonality categorical values in the hair stylist's profile, the hairstylist's favorite product brands, how many seatings in the salon, theestimated prices, the salon ambiance, and interior photos.

FIG. 11B is one illustrative example of a GUI screen of a mobile device108 for reviewing the user-hair stylist's profile edited for publicviewing. In field 1110, a pictogram of a salon is shown that if clickedon will bring up a new GUI screen as shown in FIG. 11C. Additionally oralternatively, a second pictogram is shown in field 1112 if the hairstylist has also indicated a mobile location. Clicking on the pictogramof a mobile location may bring up a new GUI screen having informationabout the mobile services, such as the distance the hair stylist iswilling to travel to a user-customer's home. Field 1114 displays thehair stylist's hair styling skills offered. Field 1116 display's thehair stylist's personality categorical values, such as favorite bookgenre, favorite music, favorite television series, favorite discussiontopic, and favorite sport participant. Field 1118 displays the productbrands used in the salon and mobile locations.

FIG. 11C is one illustrative example of a GUI screen of a mobile device108 for reviewing the hair stylist's salon page (“salon profile”). Field1122 shows the salon details, such as contact information, social media,and a photograph of the salon interior. Field 1124 displays salondetails, such as number of seatings and the salon ambiance, for example.Field 1126 shows the prices for services offered in general, or for theservices requested by the user-customer in the request. Field 1128 isfor displaying the product brands used in the salon.

Referring to FIG. 4, after the user-customer has been serviced by theuser-hair stylist, the user-customer can provide feedback on whether theuser-hair stylist's profile matches the hair styling experience. Fromblock 418, the method 400 enters block 424. In block 424, theuser-customer can provide feedback. Feedback can be provided via themobile device 108 by gaining access to the user-hair stylist's publicprofile screen, as illustrated in FIG. 11B.

FIG. 12 is one illustrative example of a GUI screen of a mobile device108 for giving feedback to a user-hair stylist. The feedback engine 140(FIG. 3) can generate the screens for inputting feedback, calculatingthe results, and displaying the feedback results. Identification field1202 identifies the hair stylist by photo or name or both for whichfeedback is being provided. Input fields 1204, 1206, 1208, and 1210 areprovided for each of the hair stylist's self-described hair stylingskills with buttons that allow the user-customer to agree, disagree, ordon't know to indicate whether the user-hair stylist possesses theself-described hair styling skills. Input fields 1212, 1214, 1216, 1218,1220 are provided for each of the hair stylist's favorite personalitycategorical values with buttons that allow the user-customer to agree,disagree, or don't know to indicate whether the personality categoricalvalues matched the personality of the hair stylist. When theuser-customer is satisfied with the feedback provided, the user-customercan select the “VALIDATE” button 1222.

Referring to FIG. 4, after the user-customer has provided feedback onthe user-hair stylist, the feedback engine 140 applies algorithms torecalculate the percentages that the user-hair stylist's personality andself-described skills categorical values match with the user-customers'feedback . From block 424, the method 400 enters block 428. In block428, the user-hair stylist sees an anonymized averaged data of allfeedbacks consolidation from user-customers. Referring to FIG. 5B, oneoption in the user-hair stylist's home screen is the option to viewuser-customers' feedback by clicking button 512.

FIG. 13 is one illustrative example of a GUI screen of a mobile device108 for displaying feedback to the user-hair stylist. Results displayfield 1302 shows the percentage of user-customers that agree, disagree,and don't know for each of the hair stylist's hair styling skills thatindicate whether, in the opinions of the user-customers, the hairstylist possesses such skills. Results display field 1304 shows thepercentage of user-customers that agree, disagree, and don't know foreach of the personality categorical values that indicate whether, in theopinions of the user-customers, the hair stylist personality matches thepersonality categorical values. When a user-hair stylist scores a lowpercentage of agrees, the hair stylist may consider editing theuser-hair stylist profile.

FIGS. 6, 7A, 7B, 7C, 7D, 7E, 7F, 7G, 7F, 8, 9, 10 describe a way to loadin the system discrete or categorical values directly selected orentered by the user in the interface. This description is non limitingas other data entry interface or technologies can be used, such asswiping gestures on touch screens for multiple choice, AI recognition ofuser generated content and the like.

Referring to FIG. 4, the user-hair stylist request for a job searchbegins in block 409. In block 409, the user-hair stylist can request tofind a job in a salon by inputting categorical and discrete valuesrelevant to the qualifications for a particular job.

The request build engine 134 (FIG. 3) can generate the screens forinputting the categorical and discrete values for making a request for ajob search.

A job search request may use some of the same or different categoricaland discrete values for matching a user-hair stylist searching for a jobto another user-hair stylist or salon. For example, a user-hair stylistrequesting a job search may input location, which alternatively, can bedetermined by the global positioning system 120 of the mobile device108. A user-hair stylist requesting a job search may input the discretevalue of maximum distance the user-hair stylist is willing to travel. Auser-hair stylist requesting a job search may input the categoricalvalues of the hair styling skills in which they are proficient, whichcan be ranked in order of proficiency. A user-hair stylist requesting ajob search may input the categorical values that are descriptive oftheir personalities. A user-hair stylist requesting a job search mayinput the categorical value of their favorite product brands. Auser-hair stylist requesting a job search may input a categoricalordinal value indicating the subjective importance to the user-hairstylist of matching the hair styling skills, personality, and productbrands to the employer user-hair stylist.

Referring to FIG. 4, after completion of the job search request in block409, the method 400 enters block 411.

In block 411, the job search request is transmitted to the matchingserver 116, where the matching engine 136 will match the requestedcategorical and discrete values in the job search request to employeruser-hair stylists' profiles and salon pages. From block 411, the methodenters block 413.

In block 413, the matching engine 136 can first apply a location filterto match the geolocation of the user-hair stylist. This filter appliesthe location of the user-hair stylist in the request and the maximumdistance willing to travel to the job location. The matching engine 136provides a filtered set of employer hair stylists or salons meeting thegeolocation request. From block 413, the method 400 enters block 415.

In block 415, the method 400 applies weighting formulas on the filteredset of hair stylists and salons resulting from block 413. For example,the matching engine 136 will next select the categorical values ratedhighest in importance by the user-hair stylist. The matching engine canset coefficients to apply a weighting algorithm to the categoricalvalues as indicated in the request. A high importance, for example, canindicate that 75% to 100% of categorical values match the categoricalvalues in the job search request. However, not all categorical valuescan be weighted the same when they are designated at the same importancelevel. For example, high importance for matching the hair styling skillsin the job search request can mean a 100% match. High importance formatching personality categorical values can mean a 50% to 75% match. Thematching engine subsequently applies weighting formulas to the mediumimportance categorical values, and last, the low importance categoricalvalues. After each requested categorical value, the matching engine canfilter out the user-hair stylists and salons that do not meet theweighting criteria for importance. The matching engine 136 tabulates thefinal job search matches as percentages. From block 415, the method 400enters block 417.

In block 417, any number, for example, six employer hair stylists orsalons having the highest matching percentages are presented to theuser-hair stylist. Additionally, the matching hair stylists results canbe saved in block 427 in the data store 130 of the matching server 116for display to the user-hair stylist at the next time that the user-hairstylist opens the application.

From block 417, the method enters block 419. In block 419, the user-hairstylist can consult any of the displayed highest ranked employer hairstylists or salons to obtain their information. For example, byselecting one of the displayed employer hair stylists or salons, one ormore screens can appear on the mobile device 108 showing the publicprofile of the hair stylist or the salon page.

While FIG. 2 is described with reference to a computing device that isimplemented as a device on a network, the description below isapplicable to servers, personal computers, mobile phones, smart phones,tablet computers, embedded computing devices, and other devices that maybe used to implement portions of embodiments of the present disclosure.Moreover, those of ordinary skill in the art and others will recognizethat the computing device 108 may be any one of any number of currentlyavailable or yet to be developed devices.

In its most basic configuration, the computing device 108 includes atleast one processor 128 and a system memory 126 connected by acommunication bus. Depending on the exact configuration and type ofdevice, the system memory 126 may be volatile or nonvolatile memory,such as read only memory (“ROM”), random access memory (“RAM”), EEPROM,flash memory, or similar memory technology. Those of ordinary skill inthe art and others will recognize that system memory 126 typicallystores data and/or program modules that are immediately accessible toand/or currently being operated on by the processor 128. In this regard,the processor 128 may serve as a computational center of the computingdevice 108 by supporting the execution of instructions. As used herein,the term “computer-readable medium” includes volatile and non-volatileand removable and non-removable media implemented in any method ortechnology such as, but not limited to, a hard drive, solid state drive,CD ROM, DVD, or other disk storage, magnetic cassettes, magnetic tape,magnetic disk storage, and/or the like, capable of storing information,such as computer readable instructions, data structures, programmodules, or other data. In this regard, the system memory 126 depictedin FIG. 2 is merely an example of computer-readable media.

As further illustrated in FIG. 2, the computing device 108 may include anetwork access 122 comprising one or more components for communicatingwith other devices over a network. Embodiments of the present disclosuremay access basic services that utilize the network access 122 to performcommunications using common network protocols. The network access 122may also include a wireless network interface configured to communicatevia one or more wireless communication protocols, such as WiFi, 2G, 3G,LTE, WiMAX, Bluetooth, Bluetooth low energy, and/or the like. As will beappreciated by one of ordinary skill in the art, the network access 122may represent one or more wireless interfaces or physical communicationinterfaces described and illustrated above with respect to particularcomponents of the computing device 108.

Suitable implementations of computing devices that include a processor128, system memory 126, and network access 122 are known andcommercially available. For ease of illustration and because it is notimportant for an understanding of the claimed subject matter, FIG. 2does not show some of the typical components of many computing devices.In this regard, the computing device 108 may include input devices, suchas a keyboard, keypad, mouse, microphone, touch input device, touchscreen, tablet, and/or the like. Such input devices may be coupled tothe computing device 108 by wired or wireless connections including RF,infrared, serial, parallel, Bluetooth, Bluetooth low energy, USB, orother suitable connections protocols using wireless or physicalconnections. Similarly, the computing device 108 may also include outputdevices such as a display, speakers, printer, etc. Since these devicesare well known in the art, they are not illustrated or described furtherherein. Representative embodiments are described.

In one embodiment, a computer-implemented method of matching a customerwith a service provider, the method comprising: creating 404, by acomputing device 108, a profile of a customer having a plurality ofcategorical values descriptive of or liked by the customer; creating404, by the computing device, a profile of a service provider having aplurality of categorical values descriptive of or liked by the serviceprovider; creating 408, by the computing device, a request by thecustomer to recommend a service provider, wherein the request includesone or more requested categorical and discrete values; and providing416, by the computing device, ranked recommendations of serviceproviders to the customer based on a comparison of the categoricalvalues in the profiles of the customer and the service provider and therequested categorical and discrete values by the customer.

In one embodiment, the service provider is a hair stylist. In oneembodiment, the computer-implemented method further comprises, creating404, by the computing device, a salon page having a plurality ofdiscrete values and categorical values descriptive of a salon of thehair stylist.

In one embodiment, the recommendations are further based on determininglocation 412 coordinates of the customer via a global positioning systemor a manual location entry and calculating the distance to a hairstylist is within the requested discrete value of maximum distance totravel by the customer.

In one embodiment, the categorical values in the profile of the customerare selected from one or more of the group consisting of sex, hairlength, favorite book genre, favorite music genre, favorite televisionseries, favorite sport participant, favorite discussion topic, firstfavorite brand, second favorite brand, third favorite brand, or acombination thereof.

In one embodiment, the customer has the option to not specify acategorical value.

In one embodiment, the categorical values of the customer are providedthrough a questionnaire, or are extracted from social media oruser-generated content by means of artificial intelligence, or imageanalysis, or analysis of hashtags found on social media, or acombination.

In one embodiment, the categorical values of the hair stylist areprovided through a questionnaire, or are extracted from social media oruser-generated content by means of artificial intelligence, or imageanalysis, or analysis of hashtags found on social media, or acombination.

In one embodiment, the categorical values of the hair stylist areextracted from image analysis of the hair stylist's salon page.

In one embodiment, the categorical values in the profile of the hairstylist are selected from one or more of the group consisting of sex ofcustomer, favorite book genre, favorite music genre, favorite televisionseries, favorite discussion topic, favorite sport participant, salonlocation, first hair styling skill, second hair styling skill, thirdhair styling skill, fourth hair styling skill, fifth hair styling skill,sixth hair styling skill, location type, first favorite brand, secondfavorite brand, third favorite brand, fourth favorite brand, fifthfavorite brand, sixth favorite brand, or a combination thereof.

In one embodiment, the hair stylist has the option to not specify acategorical value. In one embodiment, the requested categorical valuesare selected from hair styling services and customer location, and therequested discrete values are selected from maximum distance to travel,importance of hair styling skill of the hair stylist, importance ofcustomer profile, importance of customer favorite brands.

In one embodiment, the importance of the hair styling skill of the hairstylist, importance of customer profile, and importance of customerfavorite brands are selected from values of low, medium, and high.

In one embodiment, the computer-implemented method further comprisesproviding feedback 424 by a customer ranking the hair styling skills ofthe hair stylist to the requested hair styling service and ranking oneor more of the categorical values in the profile of the hair stylist.

In one embodiment, the recommendations are given as a percentrepresenting a closeness of a match of the customer profile with thehair stylist profile and a match of the requested categorical anddiscrete values to the hair stylist profile.

In one embodiment, a computing device 108, comprising at least a memory126 and processor 128, is configured to: create a profile of a customerhaving a plurality of categorical values descriptive of or liked by thecustomer; create a profile of a service provider having a plurality ofcategorical values descriptive of or liked by the service provider;create a request by the customer to recommend a service provider,wherein the request includes one or more requested categorical anddiscrete values; and provide ranked recommendations of service providersto the customer based on a comparison of the categorical values in theprofiles of the customer and the service provider and the requestedcategorical and discrete values by the customer.

In one embodiment, the service provider is a hair stylist.

In one embodiment, the computing device is further configured to createa salon page having a plurality of discrete values and categoricalvalues descriptive of a salon of the hair stylist.

In one embodiment, the recommendations are further based on determininglocation coordinates of the customer via a global positioning system ora manual location entry and calculating the distance to a hair stylistis within the requested discrete value of maximum distance to travel bythe customer.

In one embodiment, the categorical values in the profile of the customerare selected from one or more of the group consisting of sex, hairlength, favorite book genre, favorite music genre, favorite televisionseries, favorite sport participant, favorite discussion topic, firstfavorite brand, second favorite brand, third favorite brand, or acombination thereof.

In one embodiment, the customer has the option to not specify acategorical value.

In one embodiment, the categorical values of the customer are providedthrough a questionnaire, or are extracted from social media oruser-generated content by means of artificial intelligence, or imageanalysis, or analysis of hashtags found on social media, or acombination.

In one embodiment, the categorical values of the hair stylist areprovided through a questionnaire, or are extracted from social media oruser-generated content by means of artificial intelligence, or imageanalysis, or analysis of hashtags found on social media, or acombination.

In one embodiment, the categorical values of the hair stylist areextracted from image analysis of the hair stylist's salon page.

In one embodiment, the categorical values in the profile of the hairstylist are selected from one or more of the group consisting of sex ofcustomer, favorite book genre, favorite music genre, favorite televisionseries, favorite discussion topic, favorite sport participant, salonlocation, first hair styling skill, second hair styling skill, thirdhair styling skill, fourth hair styling skill, fifth hair styling skill,sixth hair styling skill, location type, first favorite brand, secondfavorite brand, third favorite brand, fourth favorite brand, fifthfavorite brand, sixth favorite brand, or a combination thereof.

In one embodiment, wherein the hair stylist has the option to notspecify a categorical value.

In one embodiment, the requested categorical values are selected fromhair styling services and customer location, and the requested discretevalues are selected from maximum distance to travel, importance of hairstyling skill of the hair stylist, importance of customer profile,importance of customer favorite brands.

In one embodiment, the importance of the hair styling skill of the hairstylist, importance of customer profile, and importance of customerfavorite brands are selected from values of low, medium, and high.

In one embodiment, the computing device is further configured to providefeedback by a customer ranking the hair styling skills of the hairstylist to the requested hair styling service and ranking one or more ofthe categorical values in the profile of the hair stylist.

In one embodiment, the recommendations are given as a percentrepresenting a closeness of a match of the customer profile with thehair stylist profile and a match of the requested categorical anddiscrete values to the hair stylist profile.

In one embodiment, a system 116 comprises: a profile building engine 132including computational circuitry configured to: create a profile of acustomer having a plurality of categorical values descriptive of orliked by the customer and to create a profile of a service providerhaving a plurality of categorical values descriptive of or liked by theservice provider; a request building engine 134 including computationalcircuitry configured to: create a request by the customer to recommend aservice provider, wherein the request includes one or more requestedcategorical and discrete values; and a matching engine 136 includingcomputational circuitry configured to: provide ranked recommendations ofservice providers to the customer based on a comparison of thecategorical values in the profiles of the customer and the serviceprovider and the requested categorical and discrete values by thecustomer.

In one embodiment, the service provider is a hair stylist.

While illustrative embodiments have been illustrated and described, itwill be appreciated that various changes can be made therein withoutdeparting from the spirit and scope of the invention.

1. A computer-implemented method of matching a customer with a serviceprovider, the method comprising: creating, by a computing device, aprofile of a customer having a plurality of categorical valuesdescriptive of or liked by the customer; creating, by the computingdevice, a profile of a service provider having a plurality ofcategorical values descriptive of or liked by the service provider;creating, by the computing device, a request by the customer torecommend a service provider, wherein the request includes one or morerequested categorical and discrete values; and providing, by thecomputing device, ranked recommendations of service providers to thecustomer based on a comparison of the categorical values in the profilesof the customer and the service provider and the requested categoricaland discrete values by the customer.
 2. The computer-implemented methodof claim 1, wherein the service provider is a hair stylist.
 3. Thecomputer-implemented method of claim 2, creating, by the computingdevice, a salon page having a plurality of discrete values andcategorical values descriptive of a salon of the hair stylist.
 4. Thecomputer-implemented method of claim 2, wherein the recommendations arefurther based on determining location coordinates of the customer via aglobal positioning system or a manual location entry, and calculatingthe distance to a hair stylist is within the requested discrete value ofmaximum distance to travel by the customer.
 5. The computer-implementedmethod of claim 2, wherein the categorical values in the profile of thecustomer are selected from one or more of the group consisting of sex,hair length, favorite book genre, favorite music genre, favoritetelevision series, favorite sport participant, favorite discussiontopic, first favorite brand, second favorite brand, third favoritebrand, or a combination thereof.
 6. The computer-implemented method ofclaim 5, wherein the customer has the option to not specify acategorical value.
 7. The computer implemented method of claim 2,wherein the categorical values of the customer are provided through aquestionnaire, or are extracted from social media or user-generatedcontent by means of artificial intelligence, or image analysis, oranalysis of hashtags found on social media, or a combination.
 8. Thecomputer implemented method of claim 2, wherein the categorical valuesof the hair stylist are provided through a questionnaire, or areextracted from social media or user-generated content by means ofartificial intelligence, or image analysis, or analysis of hashtagsfound on social media, or a combination.
 9. The computer implementedmethod of claim 3, wherein the categorical values of the hair stylistare extracted from image analysis of the hair stylist's salon page. 10.The computer-implemented method of claim 2, wherein the categoricalvalues in the profile of the hair stylist are selected from one or moreof the group consisting of sex of customer, favorite book genre,favorite music genre, favorite television series, favorite discussiontopic, favorite sport participant, salon location, first hair stylingskill, second hair styling skill, third hair styling skill, fourth hairstyling skill, fifth hair styling skill, sixth hair styling skill,location type, first favorite brand, second favorite brand, thirdfavorite brand, fourth favorite brand, fifth favorite brand, sixthfavorite brand, or a combination thereof
 11. A computing device,comprising at least a memory and processor, configured to: create aprofile of a customer having a plurality of categorical valuesdescriptive of or liked by the customer; create a profile of a serviceprovider having a plurality of categorical values descriptive of orliked by the service provider; create a request by the customer torecommend a service provider, wherein the request includes one or morerequested categorical and discrete values; and provide rankedrecommendations of service providers to the customer based on acomparison of the categorical values in the profiles of the customer andthe service provider and the requested categorical and discrete valuesby the customer.
 12. A system, comprising: a profile building engineincluding computational circuitry configured to: create a profile of acustomer having a plurality of categorical values descriptive of orliked by the customer and to create a profile of a service providerhaving a plurality of categorical values descriptive of or liked by theservice provider; a request building engine including computationalcircuitry configured to: create a request by the customer to recommend aservice provider, wherein the request includes one or more requestedcategorical and discrete values; and a matching engine includingcomputational circuitry configured to: provide ranked recommendations ofservice providers to the customer based on a comparison of thecategorical values in the profiles of the customer and the serviceprovider and the requested categorical and discrete values by thecustomer.